学习成绩>=90分的同学用A表示,60-89分之间的用B表示, 60分以下的用C表示

来源:百度知道 编辑:UC知道 时间:2024/05/24 12:13:41
完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示, 60分以下的用C表示。
自己的代码
#include<stdio.h>
main()
{
int x;
printf("Input mark!\n");
scanf("%d",&x);
if (x>=90)
printf("%d is A!\n",x);
if (x>=60&&x<=89)
printf("%d is B!\n",x);
if (x<60)
printf("%d is c!\n",x);
}
程序源代码:
main()
{
int score;
char grade;
printf("please input a score\n");
scanf("%d",&score);
grade=score>=90?'A':(score>=60?'B':'C');
printf("%d belongs to %c",score,grade);
}
1.麻烦帮我把这2行代码解释一下?
char grade;
grade=score>=90?'A':(score>=60?'B':'C');
2.我的代码和源代码优缺点在哪?

1、
char grade;定义一个变量grade,类型为char

grade=score>=90?'A':(score>=60?'B':'C');

可以写成
grade=(score>=90?'A':(score>=60?'B':'C'));

先执行score>=90?'A':(score>=60?'B':'C');
如果score>=90,其值为A,若score>=60,其值为B,剩下为C
然后将这个值赋给grade。

关于这个?:运算符,若?前的条件成立,执行:前的语句,不成立则执行后面的。

2、源代码写的简练,你写的容易读。当然用switch也可以,也很易读。

你的代码3个if,明了易懂
源代码用了条件表达式,大大减少了代码的行数。其实只要弄清楚了条件表达式就可以了。

问号前的是条件,如果条件为真,则整个表达式返回冒号前的式子的值,反之若条件为假,则整个表达式返回冒号后的式子的值。
所以grade的值就会根据判断score是否>=90,如果是>=90的,那么返回A,如果不是,则返回后面一个小的条件表达式,里面再进一步判断是否>=60,是>=60则返回B,否则返回C。就这么简单

c = a > b ? a : b;
知道不? 不清楚的话去看看书不
你的代码 可以得